In Cloud computing environment, the block device storage needed by a virtual machines (VM) can be allocated from multiple sources: the host's direct-attached storage (DAS, i.e., local disk), network-attached storage (NAS, e.g., NFS), or storage area network (SAN). These options offer different performance, reliability, and availability at different costs.
One currently known VM creation method copies over the entire VM file in raw format (a byte-by-byte copy of physical block device's content) from a read-only image template stored at an NAS to a DAS local to a host. Only then, could the host's VM be booted up and executed. Such methodology incurs a long delay due to the time it takes to copy the entire image template to the DAS until the new VM can be started and used.
Another known method only performs copy-on-write to the host's DAS, i.e., only store modified data on DAS while unmodified data are always read from the backing image. Using an image template stored on NAS as the backing image may support a faster VM creation because it need not copy the image template from NAS to DAS when creating a new VM. However, repeatedly reading unmodified data from NAS may generate excessive network traffic and I/O load on the share NAS server. This is the case especially in Cloud environment where many VMs are involved. Such a method may require that the Cloud environment provide the network and the NAS server that have sufficient capacity for handling such traffic and I/O load.
As another consideration, the existing hypervisors can migrate a VM only if its image file is stored on NAS. Perhaps due to the inability of migrating a VM running on DAS, a Cloud provider may simply notify the user of an upcoming maintenance operation on a host and asks the user to handle the consequences of losing the VM. This may be simple for the Cloud service provider but may not be desirable for Cloud users.